home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1996 #6
/
Amiga Plus CD - 1996 - No. 06.iso
/
pd
/
texte
/
texfontinst
/
contrib
/
helminck
/
zmtmacs.tex
< prev
Wrap
Text File
|
1996-07-30
|
24KB
|
708 lines
%%% This is file `zmtmacs.sty', version <1.0a>
%%%
%%% Copyright (C) 1994 Aloysius G. Helminck. All rights reserved.
%%% Permission is granted to to customize the declarations in this
%%% file to serve the needs of your installation. However, no permission
%%% is granted to distribute a modified version of this file under
%%% its original name.
%%%
%%% This file is a modification of the MTMACS.TEX file from Michael Spivak
%%% of the TEXPLORATORS CORPORATION, to be able to use the virtual mathtime
%%% fonts with plain tex. I also used parts from the file "mathtime.tex"
%%% from Adam H. Lewenberg.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Save the catcodes of @ and ". (From Michal Jaegermann)
\xdef\recoveratcodezzzz{\catcode`\noexpand\@=\the\catcode`\@}
\xdef\recoverquotecodezqrz{\catcode`\noexpand\"=\the\catcode`\"}
\catcode`\@=11
\let\true@special=\special
\def\special{\catcode`\_=8 \special@}
\def\special@#1{\true@special{#1}\catcode`\_=\active}
\catcode`\"=12
%
%%
%% Define some \newif's.
%%
\newif\ifAMSTEXloaded
\newif\ifAMSPPTloaded
%
\expandafter\ifx\csname amsppt.sty\endcsname\relax
\AMSPPTloadedfalse\else\AMSPPTloadedtrue\fi
%
\ifx\amstexloaded@\relax\AMSTEXloadedtrue\else\AMSTEXloadedfalse\fi
%%
\mathchardef\varGamma="0100
\mathchardef\varDelta="0101
\mathchardef\varTheta="0102
\mathchardef\varLambda="0103
\mathchardef\varXi="0104
\mathchardef\varPi="0105
\mathchardef\varSigma="0106
\mathchardef\varUpsilon="0107
\mathchardef\varPhi="0108
\mathchardef\varPsi="0109
\mathchardef\varOmega="010A
\ifx\amstexloaded@\relax
\mathchardef\varkappa="017E
\fi
\mathchardef\comp="2242
\def\widebar{\mathaccent"0253 }
%%
%% For Textures fonts we need to redefine the \AA macro for Plain and LaTeX.
%% the macros depend on the size of the box for the CM ring character
%% to be much wider than just the width of the ring. The times-roman
%% character is quite small and will offset the ring far to the left.
%% we adjust the size of the box for the ring to be placed in so that
%% it works "reasonably well" for roman, italic, and bold versions.
%\def\AA{\leavevmode\setbox0\hbox{A}\dimen@\ht0\advance\dimen@-0.85ex%
% \rlap{\raise.67\dimen@\hbox to \wd0{\hss\char'27\hss}}A}
\def\hbar{{\mathchar'26\mkern-6.7muh}}
\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
\not\mathrel{\mkern14mu}\crcr
\noalign{\nointerlineskip}
\mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
\ifx\amstexloaded@\relax
\def\varinjlim{\mathop{\vtop{\ialign{##\crcr
\hfil\the\textfont\z@ lim\hfil\crcr
\noalign{\nointerlineskip}\rightarrowfill\crcr
\noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
\def\varprojlim{\mathop{\vtop{\ialign{##\crcr
\hfil\the\textfont\z@ lim\hfil\crcr
\noalign{\nointerlineskip}\leftarrowfill\crcr
\noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
\def\varliminf{\mathop{\underline{\vrule height\z@ depth.2ex width\z@
\hbox{\the\textfont\z@ lim}}}}
\def\varlimsup{\mathop{\overline{\hbox{\the\textfont\z@ lim}}}}
\def\spdot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@.}}}}
\def\spddot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@..}}}}
\def\spdddot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@...}}}}
\def\spddddot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@....}}}}
\fi
\ifx\amstexloaded@\relax
\mathchardef\dotacc"0250
\def\dddot@#1#2{\setbox\z@\hbox{$#1#2$}\setbox\tw@\hbox{$#1\infty$}%
\dimen@\ht\tw@\ifdim\ht\z@<\dimen@\dimen@\ht\z@\fi
\setbox\tw@\hbox{$#1#2\mathchar"012D$}\dimen@ii\wd\tw@
\advance\dimen@ii-\wd\z@
\setbox\z@\hbox{$#1\rhook$}\advance\dimen@ii-\wd\z@
\vbox{\offinterlineskip\ialign{\hfil$#1##$\hfil\cr
\kern\dimen@ii\dotacc\mkern-2.5mu\dotacc\mkern-2.5mu\dotacc\cr
\noalign{\vskip-\dimen@}#2\cr}}}
\def\dddot{\mathpalette\dddot@}
\def\ddddot@#1#2{\setbox\z@\hbox{$#1#2$}\setbox\tw@\hbox{$#1\infty$}%
\dimen@\ht\tw@\ifdim\ht\z@<\dimen@\dimen@\ht\z@\fi
\setbox\tw@\hbox{$#1#2\mathchar"012D$}\dimen@ii\wd\tw@
\advance\dimen@ii-\wd\z@
\setbox\z@\hbox{$#1\rhook$}\advance\dimen@ii-\wd\z@
\vbox{\offinterlineskip\ialign{\hfil$#1##$\hfil\cr
\kern\dimen@ii\dotacc\mkern-2.5mu\dotacc\mkern-2.5mu\dotacc
\mkern-2.5mu\dotacc\cr
\noalign{\vskip-\dimen@}#2\cr}}}
\def\ddddot{\mathpalette\ddddot@}
\fi
\newcount\uproot@
\newcount\leftroot@
\ifx\amstexloaded@\relax\else
\def\nonmatherr@#1{\errmessage{\noexpand#1allowed only in math mode}}
\fi
\def\uproot#1{\relax\ifmmode\uproot@#1\relax\else\nonmatherr@\uproot\fi}
\def\leftroot#1{\relax\ifmmode\leftroot@#1\relax\else\nonmatherr@\leftroot\fi}
\def\root#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
\mathpalette\r@@t{#2}}
\def\r@@t#1#2{\setbox\z@\hbox{$\uproot@\z@\leftroot\z@\m@th#1\sqrt{#2}$}%
\dimen@\ht\z@\advance\dimen@-\dp\z@
\dimen@ii\dimen@
\ifdim\dimen@>30\p@\advance\dimen@ii-\sixt@@n\p@\else
\ifdim\dimen@>24\p@\advance\dimen@ii-8\p@\else
\ifdim\dimen@>18\p@\advance\dimen@ii-6\p@\else
\ifdim\dimen@>12\p@\advance\dimen@ii-4\p@\else
\ifdim\dimen@>10\p@\advance\dimen@ii-\tw@\p@\fi\fi\fi\fi\fi
\setbox\tw@\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ii by1.667\wd\tw@
\mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@ii\copy\rootbox
\mkern-8mu\mkern\leftroot@ mu\box\z@\leftroot\z@\uproot\z@}
\def\space@.{\futurelet\space@\relax}
\space@. %
\expandafter\let\csname subscript character \string_\endcsname_
\catcode`\_=\active
\def_{\ifmmode\expandafter\sb@\else
\expandafter\csname subscript character \string_\endcsname\fi}
\let\sb_
\ifnum\catcode`\^^A=8 \catcode`\^^A\active\let^^A_\fi
\def\sb@#1{\csname subscript character \string_\endcsname
{\futurelet\next\sb@@#1}}
\def\sb@@{%
\ifx\next\space@\def\next@. {\futurelet\next\sb@@}\else
\def\next@.{%
\ifx\next j\mkern-\tw@ mu\else
\ifx\next f\mkern-\tw@ mu\else
\ifx\next p\mkern-\@ne mu
\fi\fi\fi}%
\fi
\next@.}
%%
\def\jadjust{\mkern-\tw@ mu}
\ifx\laxread@\undefined\else\Nonexpanding_\fi
%%
%% The following fontdefinitions are from mtmacs.tex
%%
\def\FONT@#1#2{\expandafter\ifx\csname#1#2\endcsname\relax
\expandafter\expandafter\expandafter\global
\expandafter\font\csname#1#2\endcsname=#1#2\fi
\def\next@{\let\next@}%
\expandafter\next@\csname#1#2\endcsname}
\def\PSZ@{\edef\nextiii@{ at \the\dimen@}}
%
\def\MTEX#1{%
\dimen@#1\relax\PSZ@
\FONT@{MTEX}\nextiii@
\textfont\thr@@\next@
\scriptfont\thr@@\next@
\scriptscriptfont\thr@@\next@
\setbox\z@\hbox{\next@ B}\p@renwd\wd\z@
\ifx\amstexloaded@\relax
\buffer@\fontdimen13 \next@
\buffer\buffer@
\fi}
%
\def\SIFS@#1{\def\next@##1##2 ##3\next@{\def\nextiv@{##1##2}}%
\edef\nextii@{\noexpand\next@#1\space\noexpand\next@}\nextii@}
\def\MathRoman#1#2#3#4{%
\SIFS@{#1}%
\dimen@#2\relax\PSZ@
\FONT@\nextiv@\nextiii@\textfont\z@\next@
\dimen@#3\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\z@\next@
\dimen@#4\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\z@\next@}
\def\MathBold#1#2#3#4{%
\SIFS@{#1}%
\dimen@#2\relax\PSZ@
\FONT@\nextiv@\nextiii@\textfont\bffam\next@
\dimen@#3\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\bffam\next@
\dimen@#4\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\bffam\next@}
\def\MathItalic#1#2#3#4{%
\SIFS@{#1}%
\dimen@#2\relax\PSZ@
\FONT@\nextiv@\nextiii@\textfont\itfam\next@
\dimen@#3\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\itfam\next@
\dimen@#4\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\itfam\next@}
\def\MathOblique#1#2#3#4{%
\SIFS@{#1}%
\dimen@#2\relax\PSZ@
\FONT@\nextiv@\nextiii@\textfont\slfam\next@
\dimen@#3\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\slfam\next@
\dimen@#4\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\slfam\next@}
\def\alloc@@#1#2#3#4#5{\global\advance\count1#1by\@ne
\ch@ck#1#4#2\allocationnumber=\count1#1
\global#3#5=\allocationnumber}
\def\MathBoldItalic#1#2#3#4{%
\ifx\bfitfam\undefined
\alloc@@8\fam\chardef\sixt@@n\bfitfam
\fi
\SIFS@{#1}%
\dimen@#2\relax\PSZ@
\FONT@\nextiv@\nextiii@\textfont\bfitfam\next@
\dimen@#3\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\bfitfam\next@
\dimen@#4\relax\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\bfitfam\next@\relax
\ifx\amstexloaded@\relax
\def\bolditalic{\relax\ifmmode\expandafter\bolditalic@\else
\expandafter\nonmatherr@\expandafter\bolditalic\fi}%
\def\bolditalic@##1{{\bolditalic@@{##1}}}%
\def\bolditalic@@##1{\fam\bfitfam\relax##1}%
\def\textdef@@##1{\textdef@##1\rm\textdef@##1\bf\textdef@##1\sl
\textdef@##1\it\textdef@##1\bfit}%
\else
\def\bfit{\fam\bfitfam}%
\fi}
\def\Calligraphic#1#2#3{%
\ifx\Calfam\undefined
\alloc@@8\fam\chardef\sixt@@n\Calfam
\ifx\amstexloaded@\relax
\def\Cal@@##1{\noaccents@\fam\Calfam##1}%
\else
\def\cal{\fam\Calfam}%
\fi
\fi
\SIFS@{#1}%
\FONT@\nextiv@\empty\textfont\Calfam\next@\skewchar\next@48
\SIFS@{#2}%
\FONT@\nextiv@\empty\scriptfont\Calfam\next@\skewchar\next@48
\SIFS@{#3}%
\FONT@\nextiv@\empty\scriptscriptfont\Calfam\next@\skewchar\next@48\relax}
\def\MathPiSix#1#2#3#4{%
\ifx\MathPiSixfam\undefined
\alloc@@8\fam\chardef\sixt@@n\MathPiSixfam
\ifx\amstexloaded@\relax\else
\def\Bbb{\relax\ifmmode\expandafter\Bbb@\else
\expandafter\nonmatherr@\expandafter\Bbb\fi}%
\def\Bbb@##1{{\Bbb@@{##1}}}%
\fi
\def\Bbb@@##1{\noaccents@\fam\MathPiSixfam##1}%
\fi
\SIFS@{#1}%
\dimen@#2\relax\dimen@.95\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\textfont\MathPiSixfam\next@
\dimen@#3\relax\dimen@.95\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\MathPiSixfam\next@
\dimen@#4\relax\dimen@.95\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\MathPiSixfam\next@}
\def\MathPiTwofrak#1#2#3#4{%
\ifx\MathPiTwofrakfam\undefined
\alloc@@8\fam\chardef\sixt@@n\MathPiTwofrakfam
\ifx\amstexloaded@\relax\else
\def\frak{\relax\ifmmode\expandafter\frak@\else
\expandafter\nonmatherr@\expandafter\frak\fi}%
\def\frak@##1{{\frak@@{##1}}}%
\let\goth\frak
\fi
\fi
\def\frak@@##1{\fam\MathPiTwofrakfam\relax##1}%
\SIFS@{#1}%
\dimen@#2\relax\dimen@.88\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\textfont\MathPiTwofrakfam\next@
\dimen@#3\relax\dimen@.88\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\MathPiTwofrakfam\next@
\dimen@#4\relax\dimen@.88\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\MathPiTwofrakfam\next@}
\def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
9\or A\or B\or C\or D\or E\or F\fi}
\def\MathPiTwoScript#1#2#3#4{%
\ifx\MathPiTwoScriptfam\undefined
\alloc@@8\fam\chardef\sixt@@n\MathPiTwoScriptfam
\edef\MathPiTwoScriptfam@{\hexnumber@\MathPiTwoScriptfam}%
\def\Script{\relax\ifmmode\expandafter\Script@\else
\expandafter\nonmatherr@\expandafter\Script\fi}%
\def\Script@##1{{\Script@@{##1}}}%
\def\Script@@##1{\noaccents@
\count@=`##1\advance\count@-65
\edef\next@{\ifcase\count@21\or40\or23\or24\or25\or5E\or
26\or2A\or28\or29\or5F\or2B\or7D\or31\or32\or33\or34\or35\or
36\or37\or38\or39\or30\or2D\or3D\or5D\fi}%
\mathchar"0\MathPiTwoScriptfam@\next@\relax}%
\fi
\SIFS@{#1}%
\dimen@#2\relax\dimen@.95\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\textfont\MathPiTwoScriptfam\next@
\dimen@#3\relax\dimen@.95\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\scriptfont\MathPiTwoScriptfam\next@
\dimen@#4\relax\dimen@.95\dimen@\PSZ@
\FONT@\nextiv@\nextiii@\scriptscriptfont\MathPiTwoScriptfam\next@}
% Make the catcode of @ a letter again. (The old version of mtmacs.tex
% would fiddle with the catcode of @.)
\catcode`\@=11
%%%%%%%%%%%%%%%%%%%%%%
%%
%% In the following we define the fontfamilies. Here we follow mathtime.tex
%%
%%%%%%%%%%%%%%%%%%%%%%
%% Math fonts
%% Example of use:
%%
%% \mathitalic{zmtmi}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \mathsymbols{zmtsy}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%
% family 1 (uses ZMTMI or any of the other mathitalics fonts.)
\def\mathitalic#1#2#3#4#5#6#7{
\font\teni=#1 at #2 \skewchar\teni=45
\font\seveni=#1 at #5 \skewchar\seveni=45
\font\fivei=#1 at #7 \skewchar\fivei=45
\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
\ifAMSPPTloaded
% \font\ninei=#1 at #3 \skewchar\ninei=45
\font\eighti=#1 at #4 \skewchar\eighti=45
\font\sixi=#1 at #6 \skewchar\sixi=45
\fi
}
%
% family 2 (uses ZMTSY or any of the other mathsymbol fonts.)
\def\mathsymbols#1#2#3#4#5#6#7{
\font\tensy=#1 at #2 \skewchar\tensy=48
\font\sevensy=#1 at #5 \skewchar\sevensy=48
\font\fivesy=#1 at #7 \skewchar\fivesy=48
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
\ifAMSPPTloaded
% \font\ninesy=#1 at #3 \skewchar\ninesy=48
\font\eightsy=#1 at #4 \skewchar\eightsy=48
\font\sixsy=#1 at #6 \skewchar\sixsy=48
\fi
}
%
% family 3 (uses MTEX)
\def\mathextension#1#2#3#4#5#6{
\MTEX{#1}
\font\tenex=\fontname\textfont\thr@@
\ifAMSPPTloaded
% \font\nineex=MTEX at #2
\font\sevenex=MTEX at #4
\font\eightex=MTEX at #3
\fi
}
%
%%
%%%%%%%%%%%%%%%%%%%%%%
%% Text fonts.
%% Example of use:
%%
%% (The format is similar to the math fonts)
%% \Roman{zmtmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \Boldface{ptmrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%% Each of these control sequences also defines a macro which defines
%% the font they call. For example, \Roman{ptmr}..{} defines the macro
%% \RomanFont to be ptmr. Thus, you can say things like
%%
%% \font\bigtext=\RomanFont at 20pt
%%
%% So, you can more easily change from one font style to another
%% since \bigtext will not be a specific font but rather a large
%% version of whatever the Roman font is. The macros so defined are:
%%
%% \RomanFont
%% \ItalicFont
%% \SlantFont
%% \BoldfaceFont
%% \TypewriterFont
%% \CapsAndSmallCapsFont
%%
%% The font defining macros are all implemented ad-hoc because of the
%% ad-hoc nature in which font families use fonts in the various macro
%% packages. The following table spells this out.
%%
%% PLAIN
%% fam text script scriptscript
%% 3 10 10 10
%% 4 10 undef undef
%% 5 10 undef undef
%% 6 10 7 5
%% 7 10 undef undef
%%
%% AMSTEX
%% fam text script scriptscript
%% 3 10 10 10
%% 4 10 10 10
%% 5 10 10 10
%% 6 10 7 5
%% 7 10 undef undef
%%
%% AMSTEX+AMSPPT.STY
%% fam text script scriptscript
%% 3 10 7 7
%% 4 10 7 7
%% 5 10 10 10
%% 6 10 7 5
%% 7 10 undef undef
%%
%% LAMSTEX (same as AMSTEX)
%% fam text script scriptscript
%% 4 10 10 10
%% 5 10 10 10
%% 6 10 7 5
%% 7 10 undef undef
%%
%
% family 0 (For this we use ZMTMR or any of the other mathroman fonts.)
\def\Roman#1#2#3#4#5#6#7{
\font\tenrm=#1 at #2
\font\sevenrm=#1 at #5
\font\fiverm=#1 at #7
\textfont0=\tenrm \scriptfont0=\sevenrm
\scriptscriptfont0=\fiverm
\ifAMSPPTloaded
% \font\ninerm=#1 at #3
\font\eightrm=#1 at #4
\font\sixrm=#1 at #6
\fi
\edef\RomanFont{#1 }%
}
%
% family 4
\def\Italic#1#2#3#4#5#6#7{
\font\tenit=#1 at #2
\textfont4=\tenit
\ifAMSPPTloaded
\font\sevenit=#1 at #5
\scriptfont4=\sevenit
\scriptscriptfont4=\sevenit
% \font\nineit=#1 at #3
\font\eightit=#1 at #4
\else
\ifAMSTEXloaded
\scriptfont4=\tenit
\scriptscriptfont4=\tenit
\fi
\fi
\edef\ItalicFont{#1 }%
}
%
% family 5
\def\Slant#1#2#3#4#5#6#7{
\font\tensl=#1 at #2
\textfont5=\tensl
\ifAMSTEXloaded
\scriptfont5=\tensl
\scriptscriptfont5=\tensl
\fi
\ifAMSPPTloaded
% \font\ninesl=#1 at #3
\font\eightsl=#1 at #4
\fi
\edef\SlantFont{#1 }%
}
%
% family 6
\def\Boldface#1#2#3#4#5#6#7{
\font\tenbf=#1 at #2
\font\sevenbf=#1 at #5
\font\fivebf=#1 at #7
\textfont6=\tenbf \scriptfont\bffam=\sevenbf
\scriptscriptfont\bffam=\fivebf
\ifAMSPPTloaded
% \font\ninebf=#1 at #3
\font\eightbf=#1 at #4
\font\sixbf=#1 at #6
\fi
\edef\BoldfaceFont{#1 }%
}
%
% family 7
\def\Typewriter#1#2#3#4#5#6#7{
\font\tentt=#1 at #2
\textfont7=\tentt
\ifAMSPPTloaded
% \font\ninett=#1 at #3
\font\eighttt=#1 at #4
\fi
\edef\TypewriterFont{#1 }%
}
%
% (no family)
\def\CapsAndSmallCaps#1#2#3#4#5#6#7{
\font\tensmc=#1 at #2
%\font\ninesmc=#1 at #3
\font\eightsmc=#1 at #4
% If NOT in amsppt.sty define \sc
\ifAMSPPTloaded\else \def\sc{\tensmc}\fi
\edef\CapsAndSmallCapsFont{#1 }%
}
%
%
%%%%%%%%%%%%%%%%%%%%%%
%% AMSfonts
%% Example of use:
%% \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%% NOTE: Works with AmsTeX version 2.1 or later.
%%
%% I first define a generic AMSfont loading mechanism.
%% \AMSFontFamily{msa}{msam}{\msafam}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% #1 msa = \font name prefix
%% #2 msam = file name prefix
%% #3 \msafam = family number
%% #4 10pt = textfont
%% #5 9pt = (for later use)
%% #6 8pt = \eightpoint textfont
%% #7 7pt = scriptfont
%% #8 6pt = \eightpoint textfont
%% #9 5pt = scriptscriptfont
%%
%
%% Those who use the Blue Sky PostScript AMS fonts take note.
%% The msam and msbm fonts in the PS versions come in 10, 7 and 5
%% point sizes. If AMSPPT.STY is used we also need 8 and 6 point
%% sizes. If you have use the PS versions of the AMS fonts you should
%% have the lines:
%% \def\PSAMSFonts{TT}% Blue Sky PS AMS fonts: True
%% %%\def\PSAMSFonts{TF}% Blue Sky PS AMS fonts: False
%% in your AMSPPT.STY file. If you don't, do so NOW! Otherwise, the
%% mathtime.tex macros will not work correctly.
%
\def\ef@#1{\expandafter\font\csname #1\endcsname}
\def\DefineAMSFontFamily#1#2#3#4#5#6#7#8#9{%
\ef@{ten#1}=#210 at #4
\ef@{seven#1}=#27 at #7
\ef@{five#1}=#25 at #9
\textfont#3=\csname ten#1\endcsname
\scriptfont#3=\csname seven#1\endcsname
\scriptscriptfont#3=\csname five#1\endcsname
\ifAMSPPTloaded
\if\PSAMSFonts
% \ef@{nine#1}=#210 at #5
\ef@{eight#1}=#27 at #6
\ef@{six#1}=#25 at #8
\else
% \ef@{nine#1}=#29 at #5
\ef@{eight#1}=#28 at #6
\ef@{six#1}=#26 at #8
\fi
\fi
}
%
\def\AMSFonts#1#2#3#4#5#6{
\ifAMSTEXloaded
\ifx\loadmsam\empty
\DefineAMSFontFamily{msa}{msam}{\msafam}{#1}{#2}{#3}{#4}{#5}{#6}
\fi
\ifx\loadmsbm\empty
\DefineAMSFontFamily{msb}{msbm}{\msbfam}{#1}{#2}{#3}{#4}{#5}{#6}
\fi
\ifx\loadeufm\empty
\DefineAMSFontFamily{eufm}{eufm}{\eufmfam}{#1}{#2}{#3}{#4}{#5}{#6}
\fi
\ifx\loadeufb\empty
\DefineAMSFontFamily{eufb}{eufb}{\eufbfam}{#1}{#2}{#3}{#4}{#5}{#6}
\fi
\ifx\loadeusm\empty
\DefineAMSFontFamily{eusm}{eusm}{\eusmfam}{#1}{#2}{#3}{#4}{#5}{#6}
\fi
\ifx\loadbold\empty
\DefineAMSFontFamily{cmmib}{cmmib}{\cmmibfam}{#1}{#2}{#3}{#4}{#5}{#6}
\fi
\else\relax
\fi
\ifAMSPPTloaded
\else
\def\loadextrasizes@##1##2##3##4##5##6##7{%
\ifx\undefined##1%
\else
\addto\tenpoint{\textfont##1##3\scriptfont##1##5%
\scriptscriptfont##1##7}%
\addto\eightpoint{\textfont##1##4\scriptfont##1##6%
\scriptscriptfont##1##7}%
\fi
}%
\fi
}
%%%%%%%%%%%%%%%%%%%%%%
%% Other fonts (Old Style Digits) [Uses a \newfam!]
%% Example of use:
%% \OldNumerals{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%% The \OldNumerals macro assumes that the digits are in the normal
%% place where numbers are found in a standard TeX font. If this is
%% not the case, some VF hacking will be necessary.
%%
%% In PLAIN and AMSTEX the old style digits are accessed by calling
%% the math-italic family. Of course, the math-italic family is no
%% longer appropriate, so a new font family has to be created. Since
%% there are only 16 families, use this with care. Note also that
%% mtmacs.tex undefines \oldnos (although for some strange reason
%% \oldstyle is not touched).
%%
%% PLAIN: \oldstyle
%% AMSTEX: \oldnos
%
\edef\innernewfam{\expandafter\noexpand\csname newfam\endcsname}
%
\def\DEFoldnos{%
\def\oldnos##1{\RIfM@{\mathcode`\,="013B \fam\oldnumfam##1}\else
\leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\oldnumfam##1$}\fi}
}% a hack to get around \if.. \fi silliness.
%
\def\OldNumerals#1#2#3#4#5#6#7{%
\ifx\oldnumfam\undefined
\innernewfam\oldnumfam % Define a \newfam only if \oldnumfam is
\fi % not yet defined.
\font\tenoldnum=#1 at #2
\font\sevenoldnum=#1 at #5
\font\fiveoldnum=#1 at #7
\textfont\oldnumfam=\tenoldnum \scriptfont\oldnumfam=\sevenoldnum
\scriptscriptfont\oldnumfam=\fiveoldnum
\ifAMSTEXloaded
\DEFoldnos\let\DEFoldnos\undefined
\else
\def\oldstyle{\fam\oldnumfam \tenoldnum}
\fi
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% The logos (taken from texnames.sty v1.08 by Nelson Beebe)
%%
%% Normally, the logo for AMSTEX uses family 2 fonts in its definition,
%% which of course will give garbage in the context of the MathTime
%% fonts. In texnames.sty the AMSTEX logo uses \cal: in this case if
%% \NewCalligraphic has been called with fonts other than the cmsy
%% fonts, the logo will look odd. In other words, the only way to get
%% the \AmSTeX logo to look the way it is supposed to look is to use
%% \NewCalligraphic with the cmsy fonts.
%%
%% So I have decided that mathtime.tex will make `fake' logos which do
%% not use family 2 or \cal. If you want the real logos, you must call
%% the \MakeLogos macro. If \NewCalligraphic has been called the
%% \MakeLogos macro will use as definition for the logos the
%% definitions from texnames.sty. If \NewCalligraphic has _not_ been
%% called, then the logo macros remain faked. In the former case, if
%% fonts other than the cmsy fonts are used in \NewCalligraphic, the
%% logos may look wrong.
%%
% Define "fake" logos:
%
\ifAMSTEXloaded\def\AmSTeX{AMS\TeX}\fi% Fake it
%
\ifx\laxread@\undefined
\else
\ifx\LamSTeX\undefined% Normally defined in paper.st
\else
\def\LamSTeX{LAMS\TeX}% Fake it.
\fi
\fi
%
\def\MakeLogos{% Definitions taken from texnames.sty, ver. 1.08
\ifx\Calfam\undefined
\else
\ifAMSTEXloaded
\def\AmSTeX{$\Cal A$\kern-.1667em\lower.5ex\hbox{$\Cal M$}%
\kern-.125em$\Cal S$-\TeX}% Will look funny if cmsy fonts
% not used in \NewCalligraphic.
\fi
\ifx\laxread@\undefined
\else
\ifx\LamSTeX\undefined
\else
\def\LamSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont\Calfam A}%
\kern-.2em\lower.376ex\hbox{\the\textfont\Calfam M}%
\kern-.125em {\the\textfont\Calfam S}-\TeX}%
\fi
\fi
\fi
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Accents
\ifAMSTEXloaded
\def\D#1{{\accent"C7 #1}} % Change the dot accent for postscript
% fonts.
\makeacc@\dot{0C7} % AMSTEX math accent definition.
\else
\def\dot{\mathaccent"70C7 }% PLAIN math accent definition.
\def\.#1{{\accent"C7 #1}}
\fi
\def\H#1{{\accent"CD #1}} % Fix Hungarian umlaut for PostScript fonts.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 6. Finish up
% Recover catcodes of @ and "
% Set the characters @ and " back to their former selves.
\recoverquotecodezqrz\let\recoverquotecodezqrz=\relax
\recoveratcodezzzz\let\recoveratcodezzzz=\relax
%
\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%